package cn.foolishbird.crow.captcha;


import cn.foolishbird.crow.core.CrowEnum;
import cn.foolishbird.crow.core.IdentityStrategy;

/**
 * 生成验证码策略
 *
 * @author foolish-bird
 **/
public interface CaptchaStrategy<V> extends IdentityStrategy<Enum<? extends CrowEnum>> {

    /**
     * 根据验证码id创建验证码
     */
    Captcha<V> createCaptcha();

    /**
     * 校验是否是有效验证码
     *
     * @param captcha 验证码内容
     */
    boolean verifyCaptcha(Captcha<V> captcha);

}
